Merancang konkurensi di Elixir melampaui sekadar memulai proses secara sederhana; diperlukan metodologi yang ketat untuk mencapai keandalan 99,9999999% (sembilan sembilan). Ini setara dengan sekitar 1 detik gangguan setiap 30 tahun. Untuk mencapai standar ini, kita menggunakan Kerangka Lima Pertanyaan.
Heuristik Struktural
Sebelum menulis satu baris kode OTP, gunakan pertanyaan-pertanyaan ini untuk menguraikan masalah berstatus menjadi primitif yang dapat dikelola:
- Lingkungan & Kendala: Apakah itu satu node? Klaster global? Berapa batas memori/I/O-nya?
- Titik Fokus: Di mana data tinggal? Siapa yang "memiliki" status (misalnya, buku hasil)?
- Karakteristik Runtime: Berapa banyak permintaan konkuren? Apakah mereka terbatas oleh CPU atau I/O?
- Perlindungan: Status apa yang harus bertahan hidup? Apa yang bisa kita abaikan dan mulai ulang?
- Pengenalan Awal: Bagaimana kita menginisialisasi pohonnya? Layanan mana yang bergantung pada yang lain?
Dengan memperlakukan pertanyaan-pertanyaan ini sebagai kendala, Anda mencegah keadaan konkurensi "Bola Lumpur Besar" di mana setiap proses berbicara dengan proses lain tanpa hierarki yang jelas.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>